<?php

class FormularioDeIdioma extends Model{
	/*******************
	 * ATRIBUTOS
	 *******************/
	private $idIdiomaPortugues;
	private $portuguesLe;
	private $portuguesEscreve;
	private $portuguesFala;
	private $portuguesEntende;
	private $idIdiomaIngles;
	private $ingles;
	private $inglesLe;
	private $inglesEscreve;
	private $inglesFala;
	private $inglesEntende;
	private $idIdiomaEspanhol;
	private $espanhol;
	private $espanholLe;
	private $espanholEscreve;
	private $espanholFala;
	private $espanholEntende;
	private $idIdiomaAdicional;
	private $outrosIdiomas;
	private $outrosIdiomasNome;
	private $outrosLe;
	private $outrosEscreve;
	private $outrosFala;
	private $outrosEntende;
	private $braile;
	private $libras;
	private $outraComunicacaoCheck;
	private $outraComunicacaoNome;
	private $camposPreenchidos;
	private $listaDeIdiomas;
	private $comunicacoes;


	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeIdioma($listaDeIdiomas = null, $comunicacoes = null){
		$this->idIdiomaPortugues = 0;
		$this->portuguesLe = "";
		$this->portuguesEscreve = "";
		$this->portuguesFala = "";
		$this->portuguesEntende = "";
		$this->idIdiomaIngles = 0;
		$this->ingles = "";
		$this->inglesLe = "";
		$this->inglesEscreve = "";
		$this->inglesFala = "";
		$this->inglesEntende = "";
		$this->idIdiomaEspanhol = 0;
		$this->espanhol = "";
		$this->espanholLe = "";
		$this->espanholEscreve = "";
		$this->espanholFala = "";
		$this->espanholEntende = "";
		$this->idIdiomaAdicional = 0;
		$this->outrosIdiomas = "";
		$this->outrosIdiomasNome = "";
		$this->outrosLe = "";
		$this->outrosEscreve = "";
		$this->outrosFala = "";
		$this->outrosEntende = "";
		$this->braile = "";
		$this->libras = "";
		$this->outraComunicacaoCheck = "";
		$this->outraComunicacaoNome = "";
		$this->camposPreenchidos = array();
		$this->listaDeIdiomas = array();
		if(isset($listaDeIdiomas)){
			$this->listaDeIdiomas = $listaDeIdiomas;
			$idioma = unserialize($this->listaDeIdiomas[0]);
		}
		else{
			$this->listaDeIdiomas = array();
		}
		if(isset($comunicacoes) && count($comunicacoes) != 0){
			$this->comunicacoes = $comunicacoes;
			$comunicacao = unserialize($comunicacoes[0]);
			
		}
		else{
			$this->comunicacoes = array();
		}
		
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCAmpo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCAmpo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	public function carregarDadosDoFormulario(){

		$tamanhoListaIdioma = count($this->getIdiomas());
		$tamanhoListaComunicacoes = count($this->getComunicacoes());
		
		$tipoDeIdioma = "";
		for($posicao = 0; $posicao < $tamanhoListaIdioma; $posicao++){
			$idioma = unserialize($this->listaDeIdiomas[$posicao]);
			$tipoDeIdioma = $idioma->getNomeDoIdioma();

			switch ($tipoDeIdioma){
				case "Português":
					$this->idIdiomaPortugues = $idioma->getIdIdioma();
					$this->portuguesLe = $idioma->getLe();
					$this->portuguesEscreve = $idioma->getEscreve();
					$this->portuguesFala = $idioma->getFala();
					$this->portuguesEntende = $idioma->getEntende();
					break;

				case "Inglês":
					$this->idIdiomaIngles = $idioma->getIdIdioma();
					$this->ingles = $idioma->getNomeDoIdioma();
					$this->inglesLe = $idioma->getLe();
					$this->inglesEscreve = $idioma->getEscreve();
					$this->inglesFala = $idioma->getFala();
					$this->inglesEntende = $idioma->getEntende();
					break;

				case "Espanhol":
					$this->idIdiomaEspanhol = $idioma->getIdIdioma();
					$this->espanhol = $idioma->getNomeDoIdioma();
					$this->espanholLe = $idioma->getLe();
					$this->espanholEscreve = $idioma->getEscreve();
					$this->espanholFala = $idioma->getFala();
					$this->espanholEntende = $idioma->getEntende();
					break;
				default:
					if($idioma->getLe() != ""){
						$this->idIdiomaAdicional = $idioma->getIdIdioma();
						$this->outrosIdioma = "OutrosIdiomas";
						$this->outrosIdiomasNome = $idioma->getNomeDoIdioma();
						$this->outrosLe = $idioma->getLe();
						$this->outrosEscreve = $idioma->getEscreve();
						$this->outrosFala = $idioma->getFala();
						$this->outrosEntende = $idioma->getEntende();
					}
					
					break;
			}

		}
		
		for($posicao = 0; $posicao < $tamanhoListaComunicacoes; $posicao++ ){
			$comunicacao = unserialize($this->comunicacoes[$posicao]);
			$meioDeComunicacao = $comunicacao->getMeioDeComunicacao();
			
			switch($meioDeComunicacao){
				
				case "Braile":
					$this->braile = $comunicacao->getMeioDeComunicacao();
					break;

				case "Libras":
					$this->libras = $comunicacao->getMeioDeComunicacao();
					break;
					
				default:
					if($comunicacao->getMeioDeComunicacao() != "" && $comunicacao->getMeioDeComunicacao() != null){
						$this->outraComunicacaoCheck = "outraComunicacaoCheck";
						$this->outraComunicacaoNome = $comunicacao->getMeioDeComunicacao();
					}
					break;
			}
			
			
		}
		
		if($this->idIdiomaPortugues != null){
			$this->definirCampoPreenchido("IdIdiomaPortugues", $this->idIdiomaPortugues);
		}

		if($this->portuguesLe != null || $this->portuguesLe != ""){
			$this->definirCampoPreenchido("portuguesLe", $this->portuguesLe);
		}

		if($this->portuguesEscreve != null || $this->portuguesEscreve != ""){
			$this->definirCampoPreenchido("portuguesEscreve", $this->portuguesEscreve);
		}

		if($this->portuguesFala != null || $this->portuguesFala != ""){
			$this->definirCampoPreenchido("portuguesFala", $this->portuguesFala);
		}

		if($this->portuguesEntende != null || $this->portuguesEntende != ""){
			$this->definirCampoPreenchido("portuguesEntende", $this->portuguesEntende);
		}
		
		if($this->idIdiomaIngles != null){
			$this->definirCampoPreenchido("IdIdiomaIngles", $this->idIdiomaIngles);
		}

		if($this->ingles != null || $this->ingles != ""){
			$this->definirCampoPreenchido("ingles", $this->ingles);
		}

		if($this->inglesLe != null || $this->inglesLe != ""){
			$this->definirCampoPreenchido("inglesLe", $this->inglesLe);
		}

		if($this->inglesEscreve != null || $this->inglesEscreve != ""){
			$this->definirCampoPreenchido("inglesEscreve", $this->inglesEscreve);
		}

		if($this->inglesFala != null || $this->inglesFala != ""){
			$this->definirCampoPreenchido("inglesFala", $this->inglesFala);
		}

		if($this->inglesEntende != null || $this->inglesEntende != ""){
			$this->definirCampoPreenchido("inglesEntende", $this->inglesEntende);
		}
		
		if($this->idIdiomaEspanhol != null){
			$this->definirCampoPreenchido("IdIdiomaEspanhol", $this->idIdiomaEspanhol);
		}

		if($this->espanhol != null || $this->espanhol != ""){
			$this->definirCampoPreenchido("espanhol", $this->espanhol);
		}

		if($this->espanholLe != null || $this->espanholLe != ""){
			$this->definirCampoPreenchido("espanholLe", $this->espanholLe);
		}

		if($this->espanholEscreve != null || $this->espanholEscreve != ""){
			$this->definirCampoPreenchido("espanholEscreve", $this->espanholEscreve);
		}

		if($this->espanholFala != null || $this->espanholFala != ""){
			$this->definirCampoPreenchido("espanholFala", $this->espanholFala);
		}

		if($this->espanholEntende != null || $this->espanholEntende != ""){
			$this->definirCampoPreenchido("espanholEntende", $this->espanholEntende);
		}
		
		if($this->idIdiomaAdicional != null){
			$this->definirCampoPreenchido("IdIdiomaAdicional", $this->idIdiomaAdicional);
		}

		if($this->outrosIdiomas != null || $this->outrosIdiomas != ""){
			$this->definirCampoPreenchido("outrosIdiomas", $this->outrosIdiomas);
		}

		if($this->outrosIdiomasNome != null || $this->outrosIdiomasNome != ""){
			$this->definirCampoPreenchido("outrosIdiomasNome", $this->outrosIdiomasNome);
			$this->definirCampoPreenchido("outrosIdiomas", "OutrosIdiomas");
		}

		if($this->outrosLe != null || $this->outrosLe != ""){
			$this->definirCampoPreenchido("outrosLe", $this->outrosLe);
		}

		if($this->outrosEscreve != null || $this->outrosEscreve != ""){
			$this->definirCampoPreenchido("outrosEscreve", $this->outrosEscreve);
		}

		if($this->outrosFala != null || $this->outrosFala != ""){
			$this->definirCampoPreenchido("outrosFala", $this->outrosFala);
		}

		if($this->outrosEntende != null || $this->outrosEntende != ""){
			$this->definirCampoPreenchido("outrosEntende", $this->outrosEntende);
		}

		if($this->braile != null || $this->braile != ""){
			$this->definirCampoPreenchido("braile", $this->braile);
		}

		if($this->libras != null || $this->libras != ""){
			$this->definirCampoPreenchido("libras", $this->libras);
		}

		if($this->outraComunicacaoCheck != null || $this->outraComunicacaoCheck != ""){
			$this->definirCampoPreenchido("outraComunicacaoCheck", $this->outraComunicacaoCheck);
		}

		if($this->outraComunicacaoNome != null || $this->outraComunicacaoNome != ""){
			$this->definirCampoPreenchido("outraComunicacaoNome", $this->outraComunicacaoNome);
		}
	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$portuguesLe = "";
		$portuguesEscreve = "";
		$portuguesFala = "";
		$portuguesEntende = "";
		$ingles = "";
		$inglesLe = "";
		$inglesEscreve = "";
		$inglesFala = "";
		$inglesEntende = "";
		$espanhol = "";
		$espanholLe = "";
		$espanholEscreve = "";
		$espanholFala = "";
		$espanholEntende = "";
		$outrosIdiomas = "";
		$outrosIdiomasNome = "";
		$outrosLe = "";
		$outrosEscreve = "";
		$outrosFala = "";
		$outrosEntende = "";
		$braile = "";
		$libras = "";
		$outraComunicacaoCheck = "";
		$outraComunicacaoNome = "";
		$camposPreenchidos = "";
		
		$idIdiomaPortugues = $_POST['IdIdiomaPortugues'];
		if(isset($_POST['portuguesLe'])){			
			$portuguesLe = $_POST['portuguesLe'];
		}
		if(isset($_POST['portuguesEscreve'])){
			$portuguesEscreve = $_POST['portuguesEscreve'];
		}
		if(isset($_POST['portuguesFala'])){
			$portuguesFala = $_POST['portuguesFala'];
		}
		if(isset($_POST['portuguesEntende'])){
			$portuguesEntende = $_POST['portuguesEntende'];
		}
		
		$idIdiomaIngles = $_POST['IdIdiomaIngles'];
		if(isset($_POST['ingles'])){
			$ingles = $_POST['ingles'];
		}
		if(isset($_POST['inglesLe'])){
			$inglesLe = $_POST['inglesLe'];
		}
		if(isset($_POST['inglesEscreve'])){
			$inglesEscreve = $_POST['inglesEscreve'];
		}
		if(isset($_POST['inglesFala'])){
			$inglesFala = $_POST['inglesFala'];
		}
		if(isset($_POST['inglesEntende'])){
			$inglesEntende = $_POST['inglesEntende'];
		}
		
		$idIdiomaEspanhol = $_POST['IdIdiomaEspanhol'];
		if(isset($_POST['espanhol'])){
			$espanhol = $_POST['espanhol'];
		}
		if(isset($_POST['espanholLe'])){
			$espanholLe = $_POST['espanholLe'];
		}
		if(isset($_POST['espanholEscreve'])){
			$espanholEscreve = $_POST['espanholEscreve'];
		}
		if(isset($_POST['espanholFala'])){
			$espanholFala = $_POST['espanholFala'];
		}
		if(isset($_POST['espanholEntende'])){
			$espanholEntende = $_POST['espanholEntende'];
		}
		
		$idIdiomaAdicional = $_POST['IdIdiomaAdicional'];
		if(isset($_POST['outrosIdiomas'])){
			$outrosIdiomas = $_POST['outrosIdiomas'];
		}
		$outrosIdiomasNome = $_POST['outrosIdiomasNome'];
		if(isset($_POST['outrosLe'])){
			$outrosLe = $_POST['outrosLe'];
		}
		if(isset($_POST['outrosEscreve'])){
			$outrosEscreve = $_POST['outrosEscreve'];
		}
		if(isset($_POST['outrosFala'])){
			$outrosFala = $_POST['outrosFala'];
		}
		if(isset($_POST['outrosEntende'])){
			$outrosEntende = $_POST['outrosEntende'];
		}
		if(isset($_POST['braile'])){
			$braile = $_POST['braile'];
		}
		if(isset($_POST['libras'])){
			$libras = $_POST['libras'];
		}
		if(isset($_POST['outraComunicacaoCheck'])){
			$outraComunicacaoCheck = $_POST['outraComunicacaoCheck'];

		}
		$outraComunicacaoNome = $_POST['outraComunicacaoNome'];

		if($idIdiomaPortugues != null){
			$this->definirCampoPreenchido("IdIdiomaPortugues", $idIdiomaPortugues);
		}

		if($portuguesLe != null || $portuguesLe != ""){
			$this->definirCampoPreenchido("portuguesLe", $portuguesLe);
		}

		if($portuguesEscreve != null || $portuguesEscreve != ""){
			$this->definirCampoPreenchido("portuguesEscreve", $portuguesEscreve);
		}

		if($portuguesFala != null || $portuguesFala != ""){
			$this->definirCampoPreenchido("portuguesFala", $portuguesFala);
		}

		if($portuguesEntende != null || $portuguesEntende != ""){
			$this->definirCampoPreenchido("portuguesEntende", $portuguesEntende);
		}
		
		if($idIdiomaIngles != null){
			$this->definirCampoPreenchido("IdIdiomaIngles", $idIdiomaIngles);
		}

		if($ingles != null || $ingles != ""){
			$this->definirCampoPreenchido("ingles", $ingles);
		}

		if($inglesLe != null || $inglesLe != ""){
			$this->definirCampoPreenchido("inglesLe", $inglesLe);
		}

		if($inglesEscreve != null || $inglesEscreve != ""){
			$this->definirCampoPreenchido("inglesEscreve", $inglesEscreve);
		}

		if($inglesFala != null || $inglesFala != ""){
			$this->definirCampoPreenchido("inglesFala", $inglesFala);
		}

		if($inglesEntende != null || $inglesEntende != ""){
			$this->definirCampoPreenchido("inglesEntende", $inglesEntende);
		}
		
		if($idIdiomaEspanhol != null){
			$this->definirCampoPreenchido("IdIdiomaEspanhol", $idIdiomaEspanhol);
		}

		if($espanhol != null || $espanhol != ""){
			$this->definirCampoPreenchido("espanhol", $espanhol);
		}

		if($espanholLe != null || $espanholLe != ""){
			$this->definirCampoPreenchido("espanholLe", $espanholLe);
		}

		if($espanholEscreve != null || $espanholEscreve != ""){
			$this->definirCampoPreenchido("espanholEscreve", $espanholEscreve);
		}

		if($espanholFala != null || $espanholFala != ""){
			$this->definirCampoPreenchido("espanholFala", $espanholFala);
		}

		if($espanholEntende != null || $espanholEntende != ""){
			$this->definirCampoPreenchido("espanholEntende", $espanholEntende);
		}
		
		if($idIdiomaAdicional != null){
			$this->definirCampoPreenchido("IdIdiomaAdicional", $idIdiomaAdicional);
		}

		if($outrosIdiomas != null || $outrosIdiomas != ""){
			$this->definirCampoPreenchido("outrosIdiomas", $outrosIdiomas);
		}

		if($outrosIdiomasNome != null || $outrosIdiomasNome != ""){
			$this->definirCampoPreenchido("outrosIdiomasNome", $outrosIdiomasNome);
		}

		if($outrosLe != null || $outrosLe != ""){
			$this->definirCampoPreenchido("outrosLe", $outrosLe);
		}

		if($outrosEscreve != null || $outrosEscreve != ""){
			$this->definirCampoPreenchido("outrosEscreve", $outrosEscreve);
		}

		if($outrosFala != null || $outrosFala != ""){
			$this->definirCampoPreenchido("outrosFala", $outrosFala);
		}

		if($outrosEntende != null || $outrosEntende != ""){
			$this->definirCampoPreenchido("outrosEntende", $outrosEntende);
		}

		if($braile != null || $braile != ""){
			$this->definirCampoPreenchido("braile", $braile);
		}

		if($libras != null || $libras != ""){
			$this->definirCampoPreenchido("libras", $libras);
		}

		if($outraComunicacaoCheck != null || $outraComunicacaoCheck != ""){
			$this->definirCampoPreenchido("outraComunicacaoCheck", $outraComunicacaoCheck);
		}

		if($outraComunicacaoNome != null || $outraComunicacaoNome != ""){
			$this->definirCampoPreenchido("outraComunicacaoNome", $outraComunicacaoNome);
		}

	}
	
	
	/*****************
	 * GETTERS/SETTERS
	 *****************/
	
	public function getIdiomas(){
		return $this->listaDeIdiomas;
	}
	
	public function setIdiomas($listaDeIdiomas){
		$this->listaDeIdiomas = $listaDeIdiomas;
	}
	
	public function getComunicacoes(){
		return $this->comunicacoes;
	}
	
	public function setComunicacoes($comunicacoes){
		$this->comunicacoes = $comunicacoes;
	}

}
?>